#include <gtk/gtkoverlay.h>
#include <gtk/gtkoverlaylayout.h>
#include <gtk/gtkpadcontroller.h>
-#include <gtk/gtkpagesetup.h>
+#include <gtk/print/gtkpagesetup.h>
#include <gtk/gtkpaned.h>
-#include <gtk/gtkpapersize.h>
+#include <gtk/print/gtkpapersize.h>
#include <gtk/gtkpasswordentry.h>
#include <gtk/gtkpasswordentrybuffer.h>
#include <gtk/gtkpicture.h>
#include <gtk/gtkpopover.h>
#include <gtk/gtkpopovermenu.h>
#include <gtk/gtkpopovermenubar.h>
-#include <gtk/gtkprintcontext.h>
-#include <gtk/gtkprintoperation.h>
-#include <gtk/gtkprintoperationpreview.h>
-#include <gtk/gtkprintsettings.h>
+#include <gtk/print/gtkprintcontext.h>
+#include <gtk/print/gtkprintoperation.h>
+#include <gtk/print/gtkprintoperationpreview.h>
+#include <gtk/print/gtkprintsettings.h>
#include <gtk/gtkprogressbar.h>
#include <gtk/gtkrange.h>
#include <gtk/gtkrecentmanager.h>
#include "config.h"
-#include "gtkpagesetup.h"
+#include "print/gtkpagesetup.h"
#include "gtkprintutilsprivate.h"
-#include "gtkprintoperation.h" /* for GtkPrintError */
+#include "print/gtkprintoperation.h" /* for GtkPrintError */
#include <glib/gi18n-lib.h>
#include "gtktypebuiltins.h"
+++ /dev/null
-/* GTK - The GIMP Toolkit
- * gtkpagesetup.h: Page Setup
- * Copyright (C) 2006, Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-
-#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
-#error "Only <gtk/gtk.h> can be included directly."
-#endif
-
-#include <gtk/gtkpapersize.h>
-
-
-G_BEGIN_DECLS
-
-typedef struct _GtkPageSetup GtkPageSetup;
-
-#define GTK_TYPE_PAGE_SETUP (gtk_page_setup_get_type ())
-#define GTK_PAGE_SETUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PAGE_SETUP, GtkPageSetup))
-#define GTK_IS_PAGE_SETUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_PAGE_SETUP))
-
-GDK_AVAILABLE_IN_ALL
-GType gtk_page_setup_get_type (void) G_GNUC_CONST;
-GDK_AVAILABLE_IN_ALL
-GtkPageSetup * gtk_page_setup_new (void);
-GDK_AVAILABLE_IN_ALL
-GtkPageSetup * gtk_page_setup_copy (GtkPageSetup *other);
-GDK_AVAILABLE_IN_ALL
-GtkPageOrientation gtk_page_setup_get_orientation (GtkPageSetup *setup);
-GDK_AVAILABLE_IN_ALL
-void gtk_page_setup_set_orientation (GtkPageSetup *setup,
- GtkPageOrientation orientation);
-GDK_AVAILABLE_IN_ALL
-GtkPaperSize * gtk_page_setup_get_paper_size (GtkPageSetup *setup);
-GDK_AVAILABLE_IN_ALL
-void gtk_page_setup_set_paper_size (GtkPageSetup *setup,
- GtkPaperSize *size);
-GDK_AVAILABLE_IN_ALL
-double gtk_page_setup_get_top_margin (GtkPageSetup *setup,
- GtkUnit unit);
-GDK_AVAILABLE_IN_ALL
-void gtk_page_setup_set_top_margin (GtkPageSetup *setup,
- double margin,
- GtkUnit unit);
-GDK_AVAILABLE_IN_ALL
-double gtk_page_setup_get_bottom_margin (GtkPageSetup *setup,
- GtkUnit unit);
-GDK_AVAILABLE_IN_ALL
-void gtk_page_setup_set_bottom_margin (GtkPageSetup *setup,
- double margin,
- GtkUnit unit);
-GDK_AVAILABLE_IN_ALL
-double gtk_page_setup_get_left_margin (GtkPageSetup *setup,
- GtkUnit unit);
-GDK_AVAILABLE_IN_ALL
-void gtk_page_setup_set_left_margin (GtkPageSetup *setup,
- double margin,
- GtkUnit unit);
-GDK_AVAILABLE_IN_ALL
-double gtk_page_setup_get_right_margin (GtkPageSetup *setup,
- GtkUnit unit);
-GDK_AVAILABLE_IN_ALL
-void gtk_page_setup_set_right_margin (GtkPageSetup *setup,
- double margin,
- GtkUnit unit);
-
-GDK_AVAILABLE_IN_ALL
-void gtk_page_setup_set_paper_size_and_default_margins (GtkPageSetup *setup,
- GtkPaperSize *size);
-
-/* These take orientation, but not margins into consideration */
-GDK_AVAILABLE_IN_ALL
-double gtk_page_setup_get_paper_width (GtkPageSetup *setup,
- GtkUnit unit);
-GDK_AVAILABLE_IN_ALL
-double gtk_page_setup_get_paper_height (GtkPageSetup *setup,
- GtkUnit unit);
-
-
-/* These take orientation, and margins into consideration */
-GDK_AVAILABLE_IN_ALL
-double gtk_page_setup_get_page_width (GtkPageSetup *setup,
- GtkUnit unit);
-GDK_AVAILABLE_IN_ALL
-double gtk_page_setup_get_page_height (GtkPageSetup *setup,
- GtkUnit unit);
-
-/* Saving and restoring page setup */
-GDK_AVAILABLE_IN_ALL
-GtkPageSetup *gtk_page_setup_new_from_file (const char *file_name,
- GError **error);
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_page_setup_load_file (GtkPageSetup *setup,
- const char *file_name,
- GError **error);
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_page_setup_to_file (GtkPageSetup *setup,
- const char *file_name,
- GError **error);
-GDK_AVAILABLE_IN_ALL
-GtkPageSetup *gtk_page_setup_new_from_key_file (GKeyFile *key_file,
- const char *group_name,
- GError **error);
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_page_setup_load_key_file (GtkPageSetup *setup,
- GKeyFile *key_file,
- const char *group_name,
- GError **error);
-GDK_AVAILABLE_IN_ALL
-void gtk_page_setup_to_key_file (GtkPageSetup *setup,
- GKeyFile *key_file,
- const char *group_name);
-
-GDK_AVAILABLE_IN_ALL
-GVariant *gtk_page_setup_to_gvariant (GtkPageSetup *setup);
-GDK_AVAILABLE_IN_ALL
-GtkPageSetup *gtk_page_setup_new_from_gvariant (GVariant *variant);
-
-G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkPageSetup, g_object_unref)
-
-G_END_DECLS
-
#include "gtkpagesetupunixdialog.h"
#include "gtkcustompaperunixdialog.h"
#include "gtkprintbackendprivate.h"
-#include "gtkpapersize.h"
+#include "print/gtkpapersize.h"
#include "gtkprintutilsprivate.h"
#include "deprecated/gtkdialogprivate.h"
#endif
#include <math.h>
-#include "gtkpapersize.h"
+#include "print/gtkpapersize.h"
#include "gtkprintutilsprivate.h"
-#include "gtkprintoperation.h" /* for GtkPrintError */
+#include "print/gtkprintoperation.h" /* for GtkPrintError */
#include <glib/gi18n-lib.h>
/* _gtk_load_custom_papers() only on Unix so far */
+++ /dev/null
-/* GTK - The GIMP Toolkit
- * gtkpapersize.h: Paper Size
- * Copyright (C) 2006, Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-
-#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
-#error "Only <gtk/gtk.h> can be included directly."
-#endif
-
-#include <gdk/gdk.h>
-#include <gtk/gtkenums.h>
-
-
-G_BEGIN_DECLS
-
-typedef struct _GtkPaperSize GtkPaperSize;
-
-#define GTK_TYPE_PAPER_SIZE (gtk_paper_size_get_type ())
-
-/* Common names, from PWG 5101.1-2002 PWG: Standard for Media Standardized Names */
-/**
- * GTK_PAPER_NAME_A3:
- *
- * Name for the A3 paper size.
- */
-#define GTK_PAPER_NAME_A3 "iso_a3"
-
-/**
- * GTK_PAPER_NAME_A4:
- *
- * Name for the A4 paper size.
- */
-#define GTK_PAPER_NAME_A4 "iso_a4"
-
-/**
- * GTK_PAPER_NAME_A5:
- *
- * Name for the A5 paper size.
- */
-#define GTK_PAPER_NAME_A5 "iso_a5"
-
-/**
- * GTK_PAPER_NAME_B5:
- *
- * Name for the B5 paper size.
- */
-#define GTK_PAPER_NAME_B5 "iso_b5"
-
-/**
- * GTK_PAPER_NAME_LETTER:
- *
- * Name for the Letter paper size.
- */
-#define GTK_PAPER_NAME_LETTER "na_letter"
-
-/**
- * GTK_PAPER_NAME_EXECUTIVE:
- *
- * Name for the Executive paper size.
- */
-#define GTK_PAPER_NAME_EXECUTIVE "na_executive"
-
-/**
- * GTK_PAPER_NAME_LEGAL:
- *
- * Name for the Legal paper size.
- */
-#define GTK_PAPER_NAME_LEGAL "na_legal"
-
-GDK_AVAILABLE_IN_ALL
-GType gtk_paper_size_get_type (void) G_GNUC_CONST;
-
-GDK_AVAILABLE_IN_ALL
-GtkPaperSize *gtk_paper_size_new (const char *name);
-GDK_AVAILABLE_IN_ALL
-GtkPaperSize *gtk_paper_size_new_from_ppd (const char *ppd_name,
- const char *ppd_display_name,
- double width,
- double height);
-GDK_AVAILABLE_IN_ALL
-GtkPaperSize *gtk_paper_size_new_from_ipp (const char *ipp_name,
- double width,
- double height);
-GDK_AVAILABLE_IN_ALL
-GtkPaperSize *gtk_paper_size_new_custom (const char *name,
- const char *display_name,
- double width,
- double height,
- GtkUnit unit);
-GDK_AVAILABLE_IN_ALL
-GtkPaperSize *gtk_paper_size_copy (GtkPaperSize *other);
-GDK_AVAILABLE_IN_ALL
-void gtk_paper_size_free (GtkPaperSize *size);
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_paper_size_is_equal (GtkPaperSize *size1,
- GtkPaperSize *size2);
-
-GDK_AVAILABLE_IN_ALL
-GList *gtk_paper_size_get_paper_sizes (gboolean include_custom);
-
-/* The width is always the shortest side, measure in mm */
-GDK_AVAILABLE_IN_ALL
-const char *gtk_paper_size_get_name (GtkPaperSize *size);
-GDK_AVAILABLE_IN_ALL
-const char *gtk_paper_size_get_display_name (GtkPaperSize *size);
-GDK_AVAILABLE_IN_ALL
-const char *gtk_paper_size_get_ppd_name (GtkPaperSize *size);
-
-GDK_AVAILABLE_IN_ALL
-double gtk_paper_size_get_width (GtkPaperSize *size, GtkUnit unit);
-GDK_AVAILABLE_IN_ALL
-double gtk_paper_size_get_height (GtkPaperSize *size, GtkUnit unit);
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_paper_size_is_custom (GtkPaperSize *size);
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_paper_size_is_ipp (GtkPaperSize *size);
-
-/* Only for custom sizes: */
-GDK_AVAILABLE_IN_ALL
-void gtk_paper_size_set_size (GtkPaperSize *size,
- double width,
- double height,
- GtkUnit unit);
-
-GDK_AVAILABLE_IN_ALL
-double gtk_paper_size_get_default_top_margin (GtkPaperSize *size,
- GtkUnit unit);
-GDK_AVAILABLE_IN_ALL
-double gtk_paper_size_get_default_bottom_margin (GtkPaperSize *size,
- GtkUnit unit);
-GDK_AVAILABLE_IN_ALL
-double gtk_paper_size_get_default_left_margin (GtkPaperSize *size,
- GtkUnit unit);
-GDK_AVAILABLE_IN_ALL
-double gtk_paper_size_get_default_right_margin (GtkPaperSize *size,
- GtkUnit unit);
-
-GDK_AVAILABLE_IN_ALL
-const char *gtk_paper_size_get_default (void);
-
-GDK_AVAILABLE_IN_ALL
-GtkPaperSize *gtk_paper_size_new_from_key_file (GKeyFile *key_file,
- const char *group_name,
- GError **error);
-GDK_AVAILABLE_IN_ALL
-void gtk_paper_size_to_key_file (GtkPaperSize *size,
- GKeyFile *key_file,
- const char *group_name);
-
-GDK_AVAILABLE_IN_ALL
-GtkPaperSize *gtk_paper_size_new_from_gvariant (GVariant *variant);
-GDK_AVAILABLE_IN_ALL
-GVariant *gtk_paper_size_to_gvariant (GtkPaperSize *paper_size);
-
-G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkPaperSize, gtk_paper_size_free)
-
-G_END_DECLS
-
+++ /dev/null
-/* GTK - The GIMP Toolkit
- * gtkprintcontext.h: Print Context
- * Copyright (C) 2006, Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-
-#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
-#error "Only <gtk/gtk.h> can be included directly."
-#endif
-
-#include <pango/pango.h>
-#include <gtk/gtkpagesetup.h>
-
-
-G_BEGIN_DECLS
-
-typedef struct _GtkPrintContext GtkPrintContext;
-
-#define GTK_TYPE_PRINT_CONTEXT (gtk_print_context_get_type ())
-#define GTK_PRINT_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PRINT_CONTEXT, GtkPrintContext))
-#define GTK_IS_PRINT_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_PRINT_CONTEXT))
-
-GDK_AVAILABLE_IN_ALL
-GType gtk_print_context_get_type (void) G_GNUC_CONST;
-
-
-/* Rendering */
-GDK_AVAILABLE_IN_ALL
-cairo_t *gtk_print_context_get_cairo_context (GtkPrintContext *context);
-
-GDK_AVAILABLE_IN_ALL
-GtkPageSetup *gtk_print_context_get_page_setup (GtkPrintContext *context);
-GDK_AVAILABLE_IN_ALL
-double gtk_print_context_get_width (GtkPrintContext *context);
-GDK_AVAILABLE_IN_ALL
-double gtk_print_context_get_height (GtkPrintContext *context);
-GDK_AVAILABLE_IN_ALL
-double gtk_print_context_get_dpi_x (GtkPrintContext *context);
-GDK_AVAILABLE_IN_ALL
-double gtk_print_context_get_dpi_y (GtkPrintContext *context);
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_print_context_get_hard_margins (GtkPrintContext *context,
- double *top,
- double *bottom,
- double *left,
- double *right);
-
-/* Fonts */
-GDK_AVAILABLE_IN_ALL
-PangoFontMap *gtk_print_context_get_pango_fontmap (GtkPrintContext *context);
-GDK_AVAILABLE_IN_ALL
-PangoContext *gtk_print_context_create_pango_context (GtkPrintContext *context);
-GDK_AVAILABLE_IN_ALL
-PangoLayout *gtk_print_context_create_pango_layout (GtkPrintContext *context);
-
-/* Needed for preview implementations */
-GDK_AVAILABLE_IN_ALL
-void gtk_print_context_set_cairo_context (GtkPrintContext *context,
- cairo_t *cr,
- double dpi_x,
- double dpi_y);
-
-G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkPrintContext, g_object_unref)
-
-G_END_DECLS
-
#include "gtkprintoperation-private.h"
#include "gtkprintoperation-portal.h"
-#include "gtkprintsettings.h"
-#include "gtkpagesetup.h"
+#include "print/gtkprintsettings.h"
+#include "print/gtkpagesetup.h"
#include "gtkprintbackendprivate.h"
#include "gtkfilelauncher.h"
#include <glib/gi18n-lib.h>
#pragma once
-#include "gtkprintoperation.h"
+#include "print/gtkprintoperation.h"
G_BEGIN_DECLS
#pragma once
-#include "gtkprintoperation.h"
+#include "print/gtkprintoperation.h"
G_BEGIN_DECLS
+++ /dev/null
-/* GTK - The GIMP Toolkit
- * gtkprintoperation.h: Print Operation
- * Copyright (C) 2006, Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-
-#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
-#error "Only <gtk/gtk.h> can be included directly."
-#endif
-
-#include <cairo.h>
-#include <gtk/gtkmain.h>
-#include <gtk/gtkwindow.h>
-#include <gtk/gtkpagesetup.h>
-#include <gtk/gtkprintsettings.h>
-#include <gtk/gtkprintcontext.h>
-#include <gtk/gtkprintoperationpreview.h>
-
-
-G_BEGIN_DECLS
-
-#define GTK_TYPE_PRINT_OPERATION (gtk_print_operation_get_type ())
-#define GTK_PRINT_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PRINT_OPERATION, GtkPrintOperation))
-#define GTK_PRINT_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_PRINT_OPERATION, GtkPrintOperationClass))
-#define GTK_IS_PRINT_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_PRINT_OPERATION))
-#define GTK_IS_PRINT_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_PRINT_OPERATION))
-#define GTK_PRINT_OPERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_PRINT_OPERATION, GtkPrintOperationClass))
-
-typedef struct _GtkPrintOperationClass GtkPrintOperationClass;
-typedef struct _GtkPrintOperationPrivate GtkPrintOperationPrivate;
-typedef struct _GtkPrintOperation GtkPrintOperation;
-
-/**
- * GtkPrintStatus:
- * @GTK_PRINT_STATUS_INITIAL: The printing has not started yet; this
- * status is set initially, and while the print dialog is shown.
- * @GTK_PRINT_STATUS_PREPARING: This status is set while the begin-print
- * signal is emitted and during pagination.
- * @GTK_PRINT_STATUS_GENERATING_DATA: This status is set while the
- * pages are being rendered.
- * @GTK_PRINT_STATUS_SENDING_DATA: The print job is being sent off to the
- * printer.
- * @GTK_PRINT_STATUS_PENDING: The print job has been sent to the printer,
- * but is not printed for some reason, e.g. the printer may be stopped.
- * @GTK_PRINT_STATUS_PENDING_ISSUE: Some problem has occurred during
- * printing, e.g. a paper jam.
- * @GTK_PRINT_STATUS_PRINTING: The printer is processing the print job.
- * @GTK_PRINT_STATUS_FINISHED: The printing has been completed successfully.
- * @GTK_PRINT_STATUS_FINISHED_ABORTED: The printing has been aborted.
- *
- * The status gives a rough indication of the completion of a running
- * print operation.
- */
-typedef enum {
- GTK_PRINT_STATUS_INITIAL,
- GTK_PRINT_STATUS_PREPARING,
- GTK_PRINT_STATUS_GENERATING_DATA,
- GTK_PRINT_STATUS_SENDING_DATA,
- GTK_PRINT_STATUS_PENDING,
- GTK_PRINT_STATUS_PENDING_ISSUE,
- GTK_PRINT_STATUS_PRINTING,
- GTK_PRINT_STATUS_FINISHED,
- GTK_PRINT_STATUS_FINISHED_ABORTED
-} GtkPrintStatus;
-
-/**
- * GtkPrintOperationResult:
- * @GTK_PRINT_OPERATION_RESULT_ERROR: An error has occurred.
- * @GTK_PRINT_OPERATION_RESULT_APPLY: The print settings should be stored.
- * @GTK_PRINT_OPERATION_RESULT_CANCEL: The print operation has been canceled,
- * the print settings should not be stored.
- * @GTK_PRINT_OPERATION_RESULT_IN_PROGRESS: The print operation is not complete
- * yet. This value will only be returned when running asynchronously.
- *
- * The result of a print operation.
- *
- * A value of this type is returned by [method@Gtk.PrintOperation.run].
- */
-typedef enum {
- GTK_PRINT_OPERATION_RESULT_ERROR,
- GTK_PRINT_OPERATION_RESULT_APPLY,
- GTK_PRINT_OPERATION_RESULT_CANCEL,
- GTK_PRINT_OPERATION_RESULT_IN_PROGRESS
-} GtkPrintOperationResult;
-
-/**
- * GtkPrintOperationAction:
- * @GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG: Show the print dialog.
- * @GTK_PRINT_OPERATION_ACTION_PRINT: Start to print without showing
- * the print dialog, based on the current print settings.
- * @GTK_PRINT_OPERATION_ACTION_PREVIEW: Show the print preview.
- * @GTK_PRINT_OPERATION_ACTION_EXPORT: Export to a file. This requires
- * the export-filename property to be set.
- *
- * Determines what action the print operation should perform.
- *
- * A parameter of this typs is passed to [method@Gtk.PrintOperation.run].
- */
-typedef enum {
- GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG,
- GTK_PRINT_OPERATION_ACTION_PRINT,
- GTK_PRINT_OPERATION_ACTION_PREVIEW,
- GTK_PRINT_OPERATION_ACTION_EXPORT
-} GtkPrintOperationAction;
-
-
-struct _GtkPrintOperation
-{
- GObject parent_instance;
-
- /*< private >*/
- GtkPrintOperationPrivate *priv;
-};
-
-/**
- * GtkPrintOperationClass:
- * @parent_class: The parent class.
- * @done: Signal emitted when the print operation run has finished
- * doing everything required for printing.
- * @begin_print: Signal emitted after the user has finished changing
- * print settings in the dialog, before the actual rendering starts.
- * @paginate: Signal emitted after the “begin-print” signal, but
- * before the actual rendering starts.
- * @request_page_setup: Emitted once for every page that is printed,
- * to give the application a chance to modify the page setup.
- * @draw_page: Signal emitted for every page that is printed.
- * @end_print: Signal emitted after all pages have been rendered.
- * @status_changed: Emitted at between the various phases of the print
- * operation.
- * @create_custom_widget: Signal emitted when displaying the print dialog.
- * @custom_widget_apply: Signal emitted right before “begin-print” if
- * you added a custom widget in the “create-custom-widget” handler.
- * @preview: Signal emitted when a preview is requested from the
- * native dialog.
- * @update_custom_widget: Emitted after change of selected printer.
- */
-struct _GtkPrintOperationClass
-{
- GObjectClass parent_class;
-
- /*< public >*/
-
- void (*done) (GtkPrintOperation *operation,
- GtkPrintOperationResult result);
- void (*begin_print) (GtkPrintOperation *operation,
- GtkPrintContext *context);
- gboolean (*paginate) (GtkPrintOperation *operation,
- GtkPrintContext *context);
- void (*request_page_setup) (GtkPrintOperation *operation,
- GtkPrintContext *context,
- int page_nr,
- GtkPageSetup *setup);
- void (*draw_page) (GtkPrintOperation *operation,
- GtkPrintContext *context,
- int page_nr);
- void (*end_print) (GtkPrintOperation *operation,
- GtkPrintContext *context);
- void (*status_changed) (GtkPrintOperation *operation);
-
- GtkWidget *(*create_custom_widget) (GtkPrintOperation *operation);
- void (*custom_widget_apply) (GtkPrintOperation *operation,
- GtkWidget *widget);
-
- gboolean (*preview) (GtkPrintOperation *operation,
- GtkPrintOperationPreview *preview,
- GtkPrintContext *context,
- GtkWindow *parent);
-
- void (*update_custom_widget) (GtkPrintOperation *operation,
- GtkWidget *widget,
- GtkPageSetup *setup,
- GtkPrintSettings *settings);
-
- /*< private >*/
-
- gpointer padding[8];
-};
-
-/**
- * GTK_PRINT_ERROR:
- *
- * The error domain for `GtkPrintError` errors.
- */
-#define GTK_PRINT_ERROR gtk_print_error_quark ()
-
-/**
- * GtkPrintError:
- * @GTK_PRINT_ERROR_GENERAL: An unspecified error occurred.
- * @GTK_PRINT_ERROR_INTERNAL_ERROR: An internal error occurred.
- * @GTK_PRINT_ERROR_NOMEM: A memory allocation failed.
- * @GTK_PRINT_ERROR_INVALID_FILE: An error occurred while loading a page setup
- * or paper size from a key file.
- *
- * Error codes that identify various errors that can occur while
- * using the GTK printing support.
- */
-typedef enum
-{
- GTK_PRINT_ERROR_GENERAL,
- GTK_PRINT_ERROR_INTERNAL_ERROR,
- GTK_PRINT_ERROR_NOMEM,
- GTK_PRINT_ERROR_INVALID_FILE
-} GtkPrintError;
-
-GDK_AVAILABLE_IN_ALL
-GQuark gtk_print_error_quark (void);
-
-GDK_AVAILABLE_IN_ALL
-GType gtk_print_operation_get_type (void) G_GNUC_CONST;
-GDK_AVAILABLE_IN_ALL
-GtkPrintOperation * gtk_print_operation_new (void);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_operation_set_default_page_setup (GtkPrintOperation *op,
- GtkPageSetup *default_page_setup);
-GDK_AVAILABLE_IN_ALL
-GtkPageSetup * gtk_print_operation_get_default_page_setup (GtkPrintOperation *op);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_operation_set_print_settings (GtkPrintOperation *op,
- GtkPrintSettings *print_settings);
-GDK_AVAILABLE_IN_ALL
-GtkPrintSettings * gtk_print_operation_get_print_settings (GtkPrintOperation *op);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_operation_set_job_name (GtkPrintOperation *op,
- const char *job_name);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_operation_set_n_pages (GtkPrintOperation *op,
- int n_pages);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_operation_set_current_page (GtkPrintOperation *op,
- int current_page);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_operation_set_use_full_page (GtkPrintOperation *op,
- gboolean full_page);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_operation_set_unit (GtkPrintOperation *op,
- GtkUnit unit);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_operation_set_export_filename (GtkPrintOperation *op,
- const char *filename);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_operation_set_track_print_status (GtkPrintOperation *op,
- gboolean track_status);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_operation_set_show_progress (GtkPrintOperation *op,
- gboolean show_progress);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_operation_set_allow_async (GtkPrintOperation *op,
- gboolean allow_async);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_operation_set_custom_tab_label (GtkPrintOperation *op,
- const char *label);
-GDK_AVAILABLE_IN_ALL
-GtkPrintOperationResult gtk_print_operation_run (GtkPrintOperation *op,
- GtkPrintOperationAction action,
- GtkWindow *parent,
- GError **error);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_operation_get_error (GtkPrintOperation *op,
- GError **error);
-GDK_AVAILABLE_IN_ALL
-GtkPrintStatus gtk_print_operation_get_status (GtkPrintOperation *op);
-GDK_AVAILABLE_IN_ALL
-const char * gtk_print_operation_get_status_string (GtkPrintOperation *op);
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_print_operation_is_finished (GtkPrintOperation *op);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_operation_cancel (GtkPrintOperation *op);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_operation_draw_page_finish (GtkPrintOperation *op);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_operation_set_defer_drawing (GtkPrintOperation *op);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_operation_set_support_selection (GtkPrintOperation *op,
- gboolean support_selection);
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_print_operation_get_support_selection (GtkPrintOperation *op);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_operation_set_has_selection (GtkPrintOperation *op,
- gboolean has_selection);
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_print_operation_get_has_selection (GtkPrintOperation *op);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_operation_set_embed_page_setup (GtkPrintOperation *op,
- gboolean embed);
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_print_operation_get_embed_page_setup (GtkPrintOperation *op);
-GDK_AVAILABLE_IN_ALL
-int gtk_print_operation_get_n_pages_to_print (GtkPrintOperation *op);
-
-GDK_AVAILABLE_IN_ALL
-GtkPageSetup *gtk_print_run_page_setup_dialog (GtkWindow *parent,
- GtkPageSetup *page_setup,
- GtkPrintSettings *settings);
-
-/**
- * GtkPageSetupDoneFunc:
- * @page_setup: the `GtkPageSetup` that has been passed to
- * gtk_print_run_page_setup_dialog_async()
- * @data: (closure): user data that has been passed to
- * gtk_print_run_page_setup_dialog_async()
- *
- * The type of function that is passed to
- * gtk_print_run_page_setup_dialog_async().
- *
- * This function will be called when the page setup dialog
- * is dismissed, and also serves as destroy notify for @data.
- */
-typedef void (* GtkPageSetupDoneFunc) (GtkPageSetup *page_setup,
- gpointer data);
-
-GDK_AVAILABLE_IN_ALL
-void gtk_print_run_page_setup_dialog_async (GtkWindow *parent,
- GtkPageSetup *page_setup,
- GtkPrintSettings *settings,
- GtkPageSetupDoneFunc done_cb,
- gpointer data);
-
-G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkPrintOperation, g_object_unref)
-
-G_END_DECLS
-
#include "config.h"
-#include "gtkprintoperationpreview.h"
+#include "print/gtkprintoperationpreview.h"
#include "gtkmarshalers.h"
#include "gtkprivate.h"
+++ /dev/null
-/* GTK - The GIMP Toolkit
- * gtkprintoperationpreview.h: Abstract print preview interface
- * Copyright (C) 2006, Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
-#error "Only <gtk/gtk.h> can be included directly."
-#endif
-
-#include <cairo.h>
-#include <gtk/gtkprintcontext.h>
-
-G_BEGIN_DECLS
-
-#define GTK_TYPE_PRINT_OPERATION_PREVIEW (gtk_print_operation_preview_get_type ())
-#define GTK_PRINT_OPERATION_PREVIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PRINT_OPERATION_PREVIEW, GtkPrintOperationPreview))
-#define GTK_IS_PRINT_OPERATION_PREVIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_PRINT_OPERATION_PREVIEW))
-#define GTK_PRINT_OPERATION_PREVIEW_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GTK_TYPE_PRINT_OPERATION_PREVIEW, GtkPrintOperationPreviewIface))
-
-typedef struct _GtkPrintOperationPreview GtkPrintOperationPreview; /*dummy typedef */
-typedef struct _GtkPrintOperationPreviewIface GtkPrintOperationPreviewIface;
-
-
-struct _GtkPrintOperationPreviewIface
-{
- GTypeInterface g_iface;
-
- /* signals */
- void (*ready) (GtkPrintOperationPreview *preview,
- GtkPrintContext *context);
- void (*got_page_size) (GtkPrintOperationPreview *preview,
- GtkPrintContext *context,
- GtkPageSetup *page_setup);
-
- /* methods */
- void (*render_page) (GtkPrintOperationPreview *preview,
- int page_nr);
- gboolean (*is_selected) (GtkPrintOperationPreview *preview,
- int page_nr);
- void (*end_preview) (GtkPrintOperationPreview *preview);
-
- /* Padding for future expansion */
- void (*_gtk_reserved1) (void);
- void (*_gtk_reserved2) (void);
- void (*_gtk_reserved3) (void);
- void (*_gtk_reserved4) (void);
- void (*_gtk_reserved5) (void);
- void (*_gtk_reserved6) (void);
- void (*_gtk_reserved7) (void);
- void (*_gtk_reserved8) (void);
-};
-
-GDK_AVAILABLE_IN_ALL
-GType gtk_print_operation_preview_get_type (void) G_GNUC_CONST;
-
-GDK_AVAILABLE_IN_ALL
-void gtk_print_operation_preview_render_page (GtkPrintOperationPreview *preview,
- int page_nr);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_operation_preview_end_preview (GtkPrintOperationPreview *preview);
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_print_operation_preview_is_selected (GtkPrintOperationPreview *preview,
- int page_nr);
-
-G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkPrintOperationPreview, g_object_unref)
-
-G_END_DECLS
-
#include <glib/gprintf.h>
-#include "gtkprintsettings.h"
+#include "print/gtkprintsettings.h"
#include "gtkprintutilsprivate.h"
#include "gtktypebuiltins.h"
#include "gtkwidget.h"
+++ /dev/null
-/* GTK - The GIMP Toolkit
- * gtkprintsettings.h: Print Settings
- * Copyright (C) 2006, Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
-#error "Only <gtk/gtk.h> can be included directly."
-#endif
-
-#include <gtk/gtkpapersize.h>
-
-G_BEGIN_DECLS
-
-typedef struct _GtkPrintSettings GtkPrintSettings;
-
-#define GTK_TYPE_PRINT_SETTINGS (gtk_print_settings_get_type ())
-#define GTK_PRINT_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PRINT_SETTINGS, GtkPrintSettings))
-#define GTK_IS_PRINT_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_PRINT_SETTINGS))
-
-typedef void (*GtkPrintSettingsFunc) (const char *key,
- const char *value,
- gpointer user_data);
-
-typedef struct _GtkPageRange GtkPageRange;
-
-/**
- * GtkPageRange:
- * @start: start of page range.
- * @end: end of page range.
- *
- * A range of pages to print.
- *
- * See also [method@Gtk.PrintSettings.set_page_ranges].
- */
-struct _GtkPageRange
-{
- int start;
- int end;
-};
-
-GDK_AVAILABLE_IN_ALL
-GType gtk_print_settings_get_type (void) G_GNUC_CONST;
-GDK_AVAILABLE_IN_ALL
-GtkPrintSettings *gtk_print_settings_new (void);
-
-GDK_AVAILABLE_IN_ALL
-GtkPrintSettings *gtk_print_settings_copy (GtkPrintSettings *other);
-
-GDK_AVAILABLE_IN_ALL
-GtkPrintSettings *gtk_print_settings_new_from_file (const char *file_name,
- GError **error);
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_print_settings_load_file (GtkPrintSettings *settings,
- const char *file_name,
- GError **error);
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_print_settings_to_file (GtkPrintSettings *settings,
- const char *file_name,
- GError **error);
-GDK_AVAILABLE_IN_ALL
-GtkPrintSettings *gtk_print_settings_new_from_key_file (GKeyFile *key_file,
- const char *group_name,
- GError **error);
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_print_settings_load_key_file (GtkPrintSettings *settings,
- GKeyFile *key_file,
- const char *group_name,
- GError **error);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_to_key_file (GtkPrintSettings *settings,
- GKeyFile *key_file,
- const char *group_name);
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_print_settings_has_key (GtkPrintSettings *settings,
- const char *key);
-GDK_AVAILABLE_IN_ALL
-const char * gtk_print_settings_get (GtkPrintSettings *settings,
- const char *key);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set (GtkPrintSettings *settings,
- const char *key,
- const char *value);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_unset (GtkPrintSettings *settings,
- const char *key);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_foreach (GtkPrintSettings *settings,
- GtkPrintSettingsFunc func,
- gpointer user_data);
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_print_settings_get_bool (GtkPrintSettings *settings,
- const char *key);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set_bool (GtkPrintSettings *settings,
- const char *key,
- gboolean value);
-GDK_AVAILABLE_IN_ALL
-double gtk_print_settings_get_double (GtkPrintSettings *settings,
- const char *key);
-GDK_AVAILABLE_IN_ALL
-double gtk_print_settings_get_double_with_default (GtkPrintSettings *settings,
- const char *key,
- double def);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set_double (GtkPrintSettings *settings,
- const char *key,
- double value);
-GDK_AVAILABLE_IN_ALL
-double gtk_print_settings_get_length (GtkPrintSettings *settings,
- const char *key,
- GtkUnit unit);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set_length (GtkPrintSettings *settings,
- const char *key,
- double value,
- GtkUnit unit);
-GDK_AVAILABLE_IN_ALL
-int gtk_print_settings_get_int (GtkPrintSettings *settings,
- const char *key);
-GDK_AVAILABLE_IN_ALL
-int gtk_print_settings_get_int_with_default (GtkPrintSettings *settings,
- const char *key,
- int def);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set_int (GtkPrintSettings *settings,
- const char *key,
- int value);
-
-#define GTK_PRINT_SETTINGS_PRINTER "printer"
-#define GTK_PRINT_SETTINGS_ORIENTATION "orientation"
-#define GTK_PRINT_SETTINGS_PAPER_FORMAT "paper-format"
-#define GTK_PRINT_SETTINGS_PAPER_WIDTH "paper-width"
-#define GTK_PRINT_SETTINGS_PAPER_HEIGHT "paper-height"
-#define GTK_PRINT_SETTINGS_N_COPIES "n-copies"
-#define GTK_PRINT_SETTINGS_DEFAULT_SOURCE "default-source"
-#define GTK_PRINT_SETTINGS_QUALITY "quality"
-#define GTK_PRINT_SETTINGS_RESOLUTION "resolution"
-#define GTK_PRINT_SETTINGS_USE_COLOR "use-color"
-#define GTK_PRINT_SETTINGS_DUPLEX "duplex"
-#define GTK_PRINT_SETTINGS_COLLATE "collate"
-#define GTK_PRINT_SETTINGS_REVERSE "reverse"
-#define GTK_PRINT_SETTINGS_MEDIA_TYPE "media-type"
-#define GTK_PRINT_SETTINGS_DITHER "dither"
-#define GTK_PRINT_SETTINGS_SCALE "scale"
-#define GTK_PRINT_SETTINGS_PRINT_PAGES "print-pages"
-#define GTK_PRINT_SETTINGS_PAGE_RANGES "page-ranges"
-#define GTK_PRINT_SETTINGS_PAGE_SET "page-set"
-#define GTK_PRINT_SETTINGS_FINISHINGS "finishings"
-#define GTK_PRINT_SETTINGS_NUMBER_UP "number-up"
-#define GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT "number-up-layout"
-#define GTK_PRINT_SETTINGS_OUTPUT_BIN "output-bin"
-#define GTK_PRINT_SETTINGS_RESOLUTION_X "resolution-x"
-#define GTK_PRINT_SETTINGS_RESOLUTION_Y "resolution-y"
-#define GTK_PRINT_SETTINGS_PRINTER_LPI "printer-lpi"
-
-/**
- * GTK_PRINT_SETTINGS_OUTPUT_DIR:
- *
- * The key used by the “Print to file” printer to store the
- * directory to which the output should be written.
- */
-#define GTK_PRINT_SETTINGS_OUTPUT_DIR "output-dir"
-
-/**
- * GTK_PRINT_SETTINGS_OUTPUT_BASENAME:
- *
- * The key used by the “Print to file” printer to store the file
- * name of the output without the path to the directory and the
- * file extension.
- */
-#define GTK_PRINT_SETTINGS_OUTPUT_BASENAME "output-basename"
-
-/**
- * GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT:
- *
- * The key used by the “Print to file” printer to store the format
- * of the output. The supported values are “PS” and “PDF”.
- */
-#define GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT "output-file-format"
-
-/**
- * GTK_PRINT_SETTINGS_OUTPUT_URI:
- *
- * The key used by the “Print to file” printer to store the URI
- * to which the output should be written. GTK itself supports
- * only “file://” URIs.
- */
-#define GTK_PRINT_SETTINGS_OUTPUT_URI "output-uri"
-
-#define GTK_PRINT_SETTINGS_WIN32_DRIVER_VERSION "win32-driver-version"
-#define GTK_PRINT_SETTINGS_WIN32_DRIVER_EXTRA "win32-driver-extra"
-
-/* Helpers: */
-
-GDK_AVAILABLE_IN_ALL
-const char * gtk_print_settings_get_printer (GtkPrintSettings *settings);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set_printer (GtkPrintSettings *settings,
- const char *printer);
-GDK_AVAILABLE_IN_ALL
-GtkPageOrientation gtk_print_settings_get_orientation (GtkPrintSettings *settings);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set_orientation (GtkPrintSettings *settings,
- GtkPageOrientation orientation);
-GDK_AVAILABLE_IN_ALL
-GtkPaperSize * gtk_print_settings_get_paper_size (GtkPrintSettings *settings);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set_paper_size (GtkPrintSettings *settings,
- GtkPaperSize *paper_size);
-GDK_AVAILABLE_IN_ALL
-double gtk_print_settings_get_paper_width (GtkPrintSettings *settings,
- GtkUnit unit);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set_paper_width (GtkPrintSettings *settings,
- double width,
- GtkUnit unit);
-GDK_AVAILABLE_IN_ALL
-double gtk_print_settings_get_paper_height (GtkPrintSettings *settings,
- GtkUnit unit);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set_paper_height (GtkPrintSettings *settings,
- double height,
- GtkUnit unit);
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_print_settings_get_use_color (GtkPrintSettings *settings);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set_use_color (GtkPrintSettings *settings,
- gboolean use_color);
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_print_settings_get_collate (GtkPrintSettings *settings);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set_collate (GtkPrintSettings *settings,
- gboolean collate);
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_print_settings_get_reverse (GtkPrintSettings *settings);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set_reverse (GtkPrintSettings *settings,
- gboolean reverse);
-GDK_AVAILABLE_IN_ALL
-GtkPrintDuplex gtk_print_settings_get_duplex (GtkPrintSettings *settings);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set_duplex (GtkPrintSettings *settings,
- GtkPrintDuplex duplex);
-GDK_AVAILABLE_IN_ALL
-GtkPrintQuality gtk_print_settings_get_quality (GtkPrintSettings *settings);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set_quality (GtkPrintSettings *settings,
- GtkPrintQuality quality);
-GDK_AVAILABLE_IN_ALL
-int gtk_print_settings_get_n_copies (GtkPrintSettings *settings);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set_n_copies (GtkPrintSettings *settings,
- int num_copies);
-GDK_AVAILABLE_IN_ALL
-int gtk_print_settings_get_number_up (GtkPrintSettings *settings);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set_number_up (GtkPrintSettings *settings,
- int number_up);
-GDK_AVAILABLE_IN_ALL
-GtkNumberUpLayout gtk_print_settings_get_number_up_layout (GtkPrintSettings *settings);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set_number_up_layout (GtkPrintSettings *settings,
- GtkNumberUpLayout number_up_layout);
-GDK_AVAILABLE_IN_ALL
-int gtk_print_settings_get_resolution (GtkPrintSettings *settings);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set_resolution (GtkPrintSettings *settings,
- int resolution);
-GDK_AVAILABLE_IN_ALL
-int gtk_print_settings_get_resolution_x (GtkPrintSettings *settings);
-GDK_AVAILABLE_IN_ALL
-int gtk_print_settings_get_resolution_y (GtkPrintSettings *settings);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set_resolution_xy (GtkPrintSettings *settings,
- int resolution_x,
- int resolution_y);
-GDK_AVAILABLE_IN_ALL
-double gtk_print_settings_get_printer_lpi (GtkPrintSettings *settings);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set_printer_lpi (GtkPrintSettings *settings,
- double lpi);
-GDK_AVAILABLE_IN_ALL
-double gtk_print_settings_get_scale (GtkPrintSettings *settings);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set_scale (GtkPrintSettings *settings,
- double scale);
-GDK_AVAILABLE_IN_ALL
-GtkPrintPages gtk_print_settings_get_print_pages (GtkPrintSettings *settings);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set_print_pages (GtkPrintSettings *settings,
- GtkPrintPages pages);
-GDK_AVAILABLE_IN_ALL
-GtkPageRange * gtk_print_settings_get_page_ranges (GtkPrintSettings *settings,
- int *num_ranges);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set_page_ranges (GtkPrintSettings *settings,
- GtkPageRange *page_ranges,
- int num_ranges);
-GDK_AVAILABLE_IN_ALL
-GtkPageSet gtk_print_settings_get_page_set (GtkPrintSettings *settings);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set_page_set (GtkPrintSettings *settings,
- GtkPageSet page_set);
-GDK_AVAILABLE_IN_ALL
-const char * gtk_print_settings_get_default_source (GtkPrintSettings *settings);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set_default_source (GtkPrintSettings *settings,
- const char *default_source);
-GDK_AVAILABLE_IN_ALL
-const char * gtk_print_settings_get_media_type (GtkPrintSettings *settings);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set_media_type (GtkPrintSettings *settings,
- const char *media_type);
-GDK_AVAILABLE_IN_ALL
-const char * gtk_print_settings_get_dither (GtkPrintSettings *settings);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set_dither (GtkPrintSettings *settings,
- const char *dither);
-GDK_AVAILABLE_IN_ALL
-const char * gtk_print_settings_get_finishings (GtkPrintSettings *settings);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set_finishings (GtkPrintSettings *settings,
- const char *finishings);
-GDK_AVAILABLE_IN_ALL
-const char * gtk_print_settings_get_output_bin (GtkPrintSettings *settings);
-GDK_AVAILABLE_IN_ALL
-void gtk_print_settings_set_output_bin (GtkPrintSettings *settings,
- const char *output_bin);
-
-GDK_AVAILABLE_IN_ALL
-GVariant *gtk_print_settings_to_gvariant (GtkPrintSettings *settings);
-GDK_AVAILABLE_IN_ALL
-GtkPrintSettings *gtk_print_settings_new_from_gvariant (GVariant *variant);
-
-G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkPrintSettings, g_object_unref)
-
-G_END_DECLS
-
'gtkoverlay.h',
'gtkoverlaylayout.h',
'gtkpadcontroller.h',
- 'gtkpagesetup.h',
'gtkpaned.h',
- 'gtkpapersize.h',
'gtkpasswordentry.h',
'gtkpasswordentrybuffer.h',
'gtkpicture.h',
'gtkpopover.h',
'gtkpopovermenu.h',
'gtkpopovermenubar.h',
- 'gtkprintcontext.h',
- 'gtkprintoperation.h',
- 'gtkprintoperationpreview.h',
- 'gtkprintsettings.h',
'gtkprogressbar.h',
'gtkrange.h',
'gtkrecentmanager.h',
'gtk.h',
])
+subdir('print')
+
install_headers(gtk_public_headers, subdir: 'gtk-4.0/gtk/')
install_headers(gtk_deprecated_headers, subdir: 'gtk-4.0/gtk/deprecated')
+install_headers(gtk_print_headers, subdir: 'gtk-4.0/gtk/print')
gtk_sources = gtk_public_sources + gtk_private_sources
gtkmarshal_h = gtkmarshalers[1]
gtktypebuiltins = gnome.mkenums('gtktypebuiltins',
- sources: gtk_public_headers + gtk_deprecated_headers,
+ sources: gtk_public_headers + gtk_deprecated_headers + gtk_print_headers,
c_template: 'gtktypebuiltins.c.template',
h_template: 'gtktypebuiltins.h.template',
install_dir: gtk_includedir / 'gtk-4.0/gtk',
--- /dev/null
+/* GTK - The GIMP Toolkit
+ * gtkpagesetup.h: Page Setup
+ * Copyright (C) 2006, Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
+#include <gtk/print/gtkpapersize.h>
+
+
+G_BEGIN_DECLS
+
+typedef struct _GtkPageSetup GtkPageSetup;
+
+#define GTK_TYPE_PAGE_SETUP (gtk_page_setup_get_type ())
+#define GTK_PAGE_SETUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PAGE_SETUP, GtkPageSetup))
+#define GTK_IS_PAGE_SETUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_PAGE_SETUP))
+
+GDK_AVAILABLE_IN_ALL
+GType gtk_page_setup_get_type (void) G_GNUC_CONST;
+GDK_AVAILABLE_IN_ALL
+GtkPageSetup * gtk_page_setup_new (void);
+GDK_AVAILABLE_IN_ALL
+GtkPageSetup * gtk_page_setup_copy (GtkPageSetup *other);
+GDK_AVAILABLE_IN_ALL
+GtkPageOrientation gtk_page_setup_get_orientation (GtkPageSetup *setup);
+GDK_AVAILABLE_IN_ALL
+void gtk_page_setup_set_orientation (GtkPageSetup *setup,
+ GtkPageOrientation orientation);
+GDK_AVAILABLE_IN_ALL
+GtkPaperSize * gtk_page_setup_get_paper_size (GtkPageSetup *setup);
+GDK_AVAILABLE_IN_ALL
+void gtk_page_setup_set_paper_size (GtkPageSetup *setup,
+ GtkPaperSize *size);
+GDK_AVAILABLE_IN_ALL
+double gtk_page_setup_get_top_margin (GtkPageSetup *setup,
+ GtkUnit unit);
+GDK_AVAILABLE_IN_ALL
+void gtk_page_setup_set_top_margin (GtkPageSetup *setup,
+ double margin,
+ GtkUnit unit);
+GDK_AVAILABLE_IN_ALL
+double gtk_page_setup_get_bottom_margin (GtkPageSetup *setup,
+ GtkUnit unit);
+GDK_AVAILABLE_IN_ALL
+void gtk_page_setup_set_bottom_margin (GtkPageSetup *setup,
+ double margin,
+ GtkUnit unit);
+GDK_AVAILABLE_IN_ALL
+double gtk_page_setup_get_left_margin (GtkPageSetup *setup,
+ GtkUnit unit);
+GDK_AVAILABLE_IN_ALL
+void gtk_page_setup_set_left_margin (GtkPageSetup *setup,
+ double margin,
+ GtkUnit unit);
+GDK_AVAILABLE_IN_ALL
+double gtk_page_setup_get_right_margin (GtkPageSetup *setup,
+ GtkUnit unit);
+GDK_AVAILABLE_IN_ALL
+void gtk_page_setup_set_right_margin (GtkPageSetup *setup,
+ double margin,
+ GtkUnit unit);
+
+GDK_AVAILABLE_IN_ALL
+void gtk_page_setup_set_paper_size_and_default_margins (GtkPageSetup *setup,
+ GtkPaperSize *size);
+
+/* These take orientation, but not margins into consideration */
+GDK_AVAILABLE_IN_ALL
+double gtk_page_setup_get_paper_width (GtkPageSetup *setup,
+ GtkUnit unit);
+GDK_AVAILABLE_IN_ALL
+double gtk_page_setup_get_paper_height (GtkPageSetup *setup,
+ GtkUnit unit);
+
+
+/* These take orientation, and margins into consideration */
+GDK_AVAILABLE_IN_ALL
+double gtk_page_setup_get_page_width (GtkPageSetup *setup,
+ GtkUnit unit);
+GDK_AVAILABLE_IN_ALL
+double gtk_page_setup_get_page_height (GtkPageSetup *setup,
+ GtkUnit unit);
+
+/* Saving and restoring page setup */
+GDK_AVAILABLE_IN_ALL
+GtkPageSetup *gtk_page_setup_new_from_file (const char *file_name,
+ GError **error);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_page_setup_load_file (GtkPageSetup *setup,
+ const char *file_name,
+ GError **error);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_page_setup_to_file (GtkPageSetup *setup,
+ const char *file_name,
+ GError **error);
+GDK_AVAILABLE_IN_ALL
+GtkPageSetup *gtk_page_setup_new_from_key_file (GKeyFile *key_file,
+ const char *group_name,
+ GError **error);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_page_setup_load_key_file (GtkPageSetup *setup,
+ GKeyFile *key_file,
+ const char *group_name,
+ GError **error);
+GDK_AVAILABLE_IN_ALL
+void gtk_page_setup_to_key_file (GtkPageSetup *setup,
+ GKeyFile *key_file,
+ const char *group_name);
+
+GDK_AVAILABLE_IN_ALL
+GVariant *gtk_page_setup_to_gvariant (GtkPageSetup *setup);
+GDK_AVAILABLE_IN_ALL
+GtkPageSetup *gtk_page_setup_new_from_gvariant (GVariant *variant);
+
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkPageSetup, g_object_unref)
+
+G_END_DECLS
+
--- /dev/null
+/* GTK - The GIMP Toolkit
+ * gtkpapersize.h: Paper Size
+ * Copyright (C) 2006, Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
+#include <gdk/gdk.h>
+#include <gtk/gtkenums.h>
+
+
+G_BEGIN_DECLS
+
+typedef struct _GtkPaperSize GtkPaperSize;
+
+#define GTK_TYPE_PAPER_SIZE (gtk_paper_size_get_type ())
+
+/* Common names, from PWG 5101.1-2002 PWG: Standard for Media Standardized Names */
+/**
+ * GTK_PAPER_NAME_A3:
+ *
+ * Name for the A3 paper size.
+ */
+#define GTK_PAPER_NAME_A3 "iso_a3"
+
+/**
+ * GTK_PAPER_NAME_A4:
+ *
+ * Name for the A4 paper size.
+ */
+#define GTK_PAPER_NAME_A4 "iso_a4"
+
+/**
+ * GTK_PAPER_NAME_A5:
+ *
+ * Name for the A5 paper size.
+ */
+#define GTK_PAPER_NAME_A5 "iso_a5"
+
+/**
+ * GTK_PAPER_NAME_B5:
+ *
+ * Name for the B5 paper size.
+ */
+#define GTK_PAPER_NAME_B5 "iso_b5"
+
+/**
+ * GTK_PAPER_NAME_LETTER:
+ *
+ * Name for the Letter paper size.
+ */
+#define GTK_PAPER_NAME_LETTER "na_letter"
+
+/**
+ * GTK_PAPER_NAME_EXECUTIVE:
+ *
+ * Name for the Executive paper size.
+ */
+#define GTK_PAPER_NAME_EXECUTIVE "na_executive"
+
+/**
+ * GTK_PAPER_NAME_LEGAL:
+ *
+ * Name for the Legal paper size.
+ */
+#define GTK_PAPER_NAME_LEGAL "na_legal"
+
+GDK_AVAILABLE_IN_ALL
+GType gtk_paper_size_get_type (void) G_GNUC_CONST;
+
+GDK_AVAILABLE_IN_ALL
+GtkPaperSize *gtk_paper_size_new (const char *name);
+GDK_AVAILABLE_IN_ALL
+GtkPaperSize *gtk_paper_size_new_from_ppd (const char *ppd_name,
+ const char *ppd_display_name,
+ double width,
+ double height);
+GDK_AVAILABLE_IN_ALL
+GtkPaperSize *gtk_paper_size_new_from_ipp (const char *ipp_name,
+ double width,
+ double height);
+GDK_AVAILABLE_IN_ALL
+GtkPaperSize *gtk_paper_size_new_custom (const char *name,
+ const char *display_name,
+ double width,
+ double height,
+ GtkUnit unit);
+GDK_AVAILABLE_IN_ALL
+GtkPaperSize *gtk_paper_size_copy (GtkPaperSize *other);
+GDK_AVAILABLE_IN_ALL
+void gtk_paper_size_free (GtkPaperSize *size);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_paper_size_is_equal (GtkPaperSize *size1,
+ GtkPaperSize *size2);
+
+GDK_AVAILABLE_IN_ALL
+GList *gtk_paper_size_get_paper_sizes (gboolean include_custom);
+
+/* The width is always the shortest side, measure in mm */
+GDK_AVAILABLE_IN_ALL
+const char *gtk_paper_size_get_name (GtkPaperSize *size);
+GDK_AVAILABLE_IN_ALL
+const char *gtk_paper_size_get_display_name (GtkPaperSize *size);
+GDK_AVAILABLE_IN_ALL
+const char *gtk_paper_size_get_ppd_name (GtkPaperSize *size);
+
+GDK_AVAILABLE_IN_ALL
+double gtk_paper_size_get_width (GtkPaperSize *size, GtkUnit unit);
+GDK_AVAILABLE_IN_ALL
+double gtk_paper_size_get_height (GtkPaperSize *size, GtkUnit unit);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_paper_size_is_custom (GtkPaperSize *size);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_paper_size_is_ipp (GtkPaperSize *size);
+
+/* Only for custom sizes: */
+GDK_AVAILABLE_IN_ALL
+void gtk_paper_size_set_size (GtkPaperSize *size,
+ double width,
+ double height,
+ GtkUnit unit);
+
+GDK_AVAILABLE_IN_ALL
+double gtk_paper_size_get_default_top_margin (GtkPaperSize *size,
+ GtkUnit unit);
+GDK_AVAILABLE_IN_ALL
+double gtk_paper_size_get_default_bottom_margin (GtkPaperSize *size,
+ GtkUnit unit);
+GDK_AVAILABLE_IN_ALL
+double gtk_paper_size_get_default_left_margin (GtkPaperSize *size,
+ GtkUnit unit);
+GDK_AVAILABLE_IN_ALL
+double gtk_paper_size_get_default_right_margin (GtkPaperSize *size,
+ GtkUnit unit);
+
+GDK_AVAILABLE_IN_ALL
+const char *gtk_paper_size_get_default (void);
+
+GDK_AVAILABLE_IN_ALL
+GtkPaperSize *gtk_paper_size_new_from_key_file (GKeyFile *key_file,
+ const char *group_name,
+ GError **error);
+GDK_AVAILABLE_IN_ALL
+void gtk_paper_size_to_key_file (GtkPaperSize *size,
+ GKeyFile *key_file,
+ const char *group_name);
+
+GDK_AVAILABLE_IN_ALL
+GtkPaperSize *gtk_paper_size_new_from_gvariant (GVariant *variant);
+GDK_AVAILABLE_IN_ALL
+GVariant *gtk_paper_size_to_gvariant (GtkPaperSize *paper_size);
+
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkPaperSize, gtk_paper_size_free)
+
+G_END_DECLS
+
--- /dev/null
+/* GTK - The GIMP Toolkit
+ * gtkprintcontext.h: Print Context
+ * Copyright (C) 2006, Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
+#include <pango/pango.h>
+#include <gtk/print/gtkpagesetup.h>
+
+
+G_BEGIN_DECLS
+
+typedef struct _GtkPrintContext GtkPrintContext;
+
+#define GTK_TYPE_PRINT_CONTEXT (gtk_print_context_get_type ())
+#define GTK_PRINT_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PRINT_CONTEXT, GtkPrintContext))
+#define GTK_IS_PRINT_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_PRINT_CONTEXT))
+
+GDK_AVAILABLE_IN_ALL
+GType gtk_print_context_get_type (void) G_GNUC_CONST;
+
+
+/* Rendering */
+GDK_AVAILABLE_IN_ALL
+cairo_t *gtk_print_context_get_cairo_context (GtkPrintContext *context);
+
+GDK_AVAILABLE_IN_ALL
+GtkPageSetup *gtk_print_context_get_page_setup (GtkPrintContext *context);
+GDK_AVAILABLE_IN_ALL
+double gtk_print_context_get_width (GtkPrintContext *context);
+GDK_AVAILABLE_IN_ALL
+double gtk_print_context_get_height (GtkPrintContext *context);
+GDK_AVAILABLE_IN_ALL
+double gtk_print_context_get_dpi_x (GtkPrintContext *context);
+GDK_AVAILABLE_IN_ALL
+double gtk_print_context_get_dpi_y (GtkPrintContext *context);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_print_context_get_hard_margins (GtkPrintContext *context,
+ double *top,
+ double *bottom,
+ double *left,
+ double *right);
+
+/* Fonts */
+GDK_AVAILABLE_IN_ALL
+PangoFontMap *gtk_print_context_get_pango_fontmap (GtkPrintContext *context);
+GDK_AVAILABLE_IN_ALL
+PangoContext *gtk_print_context_create_pango_context (GtkPrintContext *context);
+GDK_AVAILABLE_IN_ALL
+PangoLayout *gtk_print_context_create_pango_layout (GtkPrintContext *context);
+
+/* Needed for preview implementations */
+GDK_AVAILABLE_IN_ALL
+void gtk_print_context_set_cairo_context (GtkPrintContext *context,
+ cairo_t *cr,
+ double dpi_x,
+ double dpi_y);
+
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkPrintContext, g_object_unref)
+
+G_END_DECLS
+
--- /dev/null
+/* GTK - The GIMP Toolkit
+ * gtkprintoperation.h: Print Operation
+ * Copyright (C) 2006, Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
+#include <cairo.h>
+#include <gtk/gtkmain.h>
+#include <gtk/gtkwindow.h>
+#include <gtk/print/gtkpagesetup.h>
+#include <gtk/print/gtkprintsettings.h>
+#include <gtk/print/gtkprintcontext.h>
+#include <gtk/print/gtkprintoperationpreview.h>
+
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_PRINT_OPERATION (gtk_print_operation_get_type ())
+#define GTK_PRINT_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PRINT_OPERATION, GtkPrintOperation))
+#define GTK_PRINT_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_PRINT_OPERATION, GtkPrintOperationClass))
+#define GTK_IS_PRINT_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_PRINT_OPERATION))
+#define GTK_IS_PRINT_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_PRINT_OPERATION))
+#define GTK_PRINT_OPERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_PRINT_OPERATION, GtkPrintOperationClass))
+
+typedef struct _GtkPrintOperationClass GtkPrintOperationClass;
+typedef struct _GtkPrintOperationPrivate GtkPrintOperationPrivate;
+typedef struct _GtkPrintOperation GtkPrintOperation;
+
+/**
+ * GtkPrintStatus:
+ * @GTK_PRINT_STATUS_INITIAL: The printing has not started yet; this
+ * status is set initially, and while the print dialog is shown.
+ * @GTK_PRINT_STATUS_PREPARING: This status is set while the begin-print
+ * signal is emitted and during pagination.
+ * @GTK_PRINT_STATUS_GENERATING_DATA: This status is set while the
+ * pages are being rendered.
+ * @GTK_PRINT_STATUS_SENDING_DATA: The print job is being sent off to the
+ * printer.
+ * @GTK_PRINT_STATUS_PENDING: The print job has been sent to the printer,
+ * but is not printed for some reason, e.g. the printer may be stopped.
+ * @GTK_PRINT_STATUS_PENDING_ISSUE: Some problem has occurred during
+ * printing, e.g. a paper jam.
+ * @GTK_PRINT_STATUS_PRINTING: The printer is processing the print job.
+ * @GTK_PRINT_STATUS_FINISHED: The printing has been completed successfully.
+ * @GTK_PRINT_STATUS_FINISHED_ABORTED: The printing has been aborted.
+ *
+ * The status gives a rough indication of the completion of a running
+ * print operation.
+ */
+typedef enum {
+ GTK_PRINT_STATUS_INITIAL,
+ GTK_PRINT_STATUS_PREPARING,
+ GTK_PRINT_STATUS_GENERATING_DATA,
+ GTK_PRINT_STATUS_SENDING_DATA,
+ GTK_PRINT_STATUS_PENDING,
+ GTK_PRINT_STATUS_PENDING_ISSUE,
+ GTK_PRINT_STATUS_PRINTING,
+ GTK_PRINT_STATUS_FINISHED,
+ GTK_PRINT_STATUS_FINISHED_ABORTED
+} GtkPrintStatus;
+
+/**
+ * GtkPrintOperationResult:
+ * @GTK_PRINT_OPERATION_RESULT_ERROR: An error has occurred.
+ * @GTK_PRINT_OPERATION_RESULT_APPLY: The print settings should be stored.
+ * @GTK_PRINT_OPERATION_RESULT_CANCEL: The print operation has been canceled,
+ * the print settings should not be stored.
+ * @GTK_PRINT_OPERATION_RESULT_IN_PROGRESS: The print operation is not complete
+ * yet. This value will only be returned when running asynchronously.
+ *
+ * The result of a print operation.
+ *
+ * A value of this type is returned by [method@Gtk.PrintOperation.run].
+ */
+typedef enum {
+ GTK_PRINT_OPERATION_RESULT_ERROR,
+ GTK_PRINT_OPERATION_RESULT_APPLY,
+ GTK_PRINT_OPERATION_RESULT_CANCEL,
+ GTK_PRINT_OPERATION_RESULT_IN_PROGRESS
+} GtkPrintOperationResult;
+
+/**
+ * GtkPrintOperationAction:
+ * @GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG: Show the print dialog.
+ * @GTK_PRINT_OPERATION_ACTION_PRINT: Start to print without showing
+ * the print dialog, based on the current print settings.
+ * @GTK_PRINT_OPERATION_ACTION_PREVIEW: Show the print preview.
+ * @GTK_PRINT_OPERATION_ACTION_EXPORT: Export to a file. This requires
+ * the export-filename property to be set.
+ *
+ * Determines what action the print operation should perform.
+ *
+ * A parameter of this typs is passed to [method@Gtk.PrintOperation.run].
+ */
+typedef enum {
+ GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG,
+ GTK_PRINT_OPERATION_ACTION_PRINT,
+ GTK_PRINT_OPERATION_ACTION_PREVIEW,
+ GTK_PRINT_OPERATION_ACTION_EXPORT
+} GtkPrintOperationAction;
+
+
+struct _GtkPrintOperation
+{
+ GObject parent_instance;
+
+ /*< private >*/
+ GtkPrintOperationPrivate *priv;
+};
+
+/**
+ * GtkPrintOperationClass:
+ * @parent_class: The parent class.
+ * @done: Signal emitted when the print operation run has finished
+ * doing everything required for printing.
+ * @begin_print: Signal emitted after the user has finished changing
+ * print settings in the dialog, before the actual rendering starts.
+ * @paginate: Signal emitted after the “begin-print” signal, but
+ * before the actual rendering starts.
+ * @request_page_setup: Emitted once for every page that is printed,
+ * to give the application a chance to modify the page setup.
+ * @draw_page: Signal emitted for every page that is printed.
+ * @end_print: Signal emitted after all pages have been rendered.
+ * @status_changed: Emitted at between the various phases of the print
+ * operation.
+ * @create_custom_widget: Signal emitted when displaying the print dialog.
+ * @custom_widget_apply: Signal emitted right before “begin-print” if
+ * you added a custom widget in the “create-custom-widget” handler.
+ * @preview: Signal emitted when a preview is requested from the
+ * native dialog.
+ * @update_custom_widget: Emitted after change of selected printer.
+ */
+struct _GtkPrintOperationClass
+{
+ GObjectClass parent_class;
+
+ /*< public >*/
+
+ void (*done) (GtkPrintOperation *operation,
+ GtkPrintOperationResult result);
+ void (*begin_print) (GtkPrintOperation *operation,
+ GtkPrintContext *context);
+ gboolean (*paginate) (GtkPrintOperation *operation,
+ GtkPrintContext *context);
+ void (*request_page_setup) (GtkPrintOperation *operation,
+ GtkPrintContext *context,
+ int page_nr,
+ GtkPageSetup *setup);
+ void (*draw_page) (GtkPrintOperation *operation,
+ GtkPrintContext *context,
+ int page_nr);
+ void (*end_print) (GtkPrintOperation *operation,
+ GtkPrintContext *context);
+ void (*status_changed) (GtkPrintOperation *operation);
+
+ GtkWidget *(*create_custom_widget) (GtkPrintOperation *operation);
+ void (*custom_widget_apply) (GtkPrintOperation *operation,
+ GtkWidget *widget);
+
+ gboolean (*preview) (GtkPrintOperation *operation,
+ GtkPrintOperationPreview *preview,
+ GtkPrintContext *context,
+ GtkWindow *parent);
+
+ void (*update_custom_widget) (GtkPrintOperation *operation,
+ GtkWidget *widget,
+ GtkPageSetup *setup,
+ GtkPrintSettings *settings);
+
+ /*< private >*/
+
+ gpointer padding[8];
+};
+
+/**
+ * GTK_PRINT_ERROR:
+ *
+ * The error domain for `GtkPrintError` errors.
+ */
+#define GTK_PRINT_ERROR gtk_print_error_quark ()
+
+/**
+ * GtkPrintError:
+ * @GTK_PRINT_ERROR_GENERAL: An unspecified error occurred.
+ * @GTK_PRINT_ERROR_INTERNAL_ERROR: An internal error occurred.
+ * @GTK_PRINT_ERROR_NOMEM: A memory allocation failed.
+ * @GTK_PRINT_ERROR_INVALID_FILE: An error occurred while loading a page setup
+ * or paper size from a key file.
+ *
+ * Error codes that identify various errors that can occur while
+ * using the GTK printing support.
+ */
+typedef enum
+{
+ GTK_PRINT_ERROR_GENERAL,
+ GTK_PRINT_ERROR_INTERNAL_ERROR,
+ GTK_PRINT_ERROR_NOMEM,
+ GTK_PRINT_ERROR_INVALID_FILE
+} GtkPrintError;
+
+GDK_AVAILABLE_IN_ALL
+GQuark gtk_print_error_quark (void);
+
+GDK_AVAILABLE_IN_ALL
+GType gtk_print_operation_get_type (void) G_GNUC_CONST;
+GDK_AVAILABLE_IN_ALL
+GtkPrintOperation * gtk_print_operation_new (void);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_operation_set_default_page_setup (GtkPrintOperation *op,
+ GtkPageSetup *default_page_setup);
+GDK_AVAILABLE_IN_ALL
+GtkPageSetup * gtk_print_operation_get_default_page_setup (GtkPrintOperation *op);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_operation_set_print_settings (GtkPrintOperation *op,
+ GtkPrintSettings *print_settings);
+GDK_AVAILABLE_IN_ALL
+GtkPrintSettings * gtk_print_operation_get_print_settings (GtkPrintOperation *op);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_operation_set_job_name (GtkPrintOperation *op,
+ const char *job_name);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_operation_set_n_pages (GtkPrintOperation *op,
+ int n_pages);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_operation_set_current_page (GtkPrintOperation *op,
+ int current_page);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_operation_set_use_full_page (GtkPrintOperation *op,
+ gboolean full_page);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_operation_set_unit (GtkPrintOperation *op,
+ GtkUnit unit);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_operation_set_export_filename (GtkPrintOperation *op,
+ const char *filename);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_operation_set_track_print_status (GtkPrintOperation *op,
+ gboolean track_status);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_operation_set_show_progress (GtkPrintOperation *op,
+ gboolean show_progress);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_operation_set_allow_async (GtkPrintOperation *op,
+ gboolean allow_async);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_operation_set_custom_tab_label (GtkPrintOperation *op,
+ const char *label);
+GDK_AVAILABLE_IN_ALL
+GtkPrintOperationResult gtk_print_operation_run (GtkPrintOperation *op,
+ GtkPrintOperationAction action,
+ GtkWindow *parent,
+ GError **error);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_operation_get_error (GtkPrintOperation *op,
+ GError **error);
+GDK_AVAILABLE_IN_ALL
+GtkPrintStatus gtk_print_operation_get_status (GtkPrintOperation *op);
+GDK_AVAILABLE_IN_ALL
+const char * gtk_print_operation_get_status_string (GtkPrintOperation *op);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_print_operation_is_finished (GtkPrintOperation *op);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_operation_cancel (GtkPrintOperation *op);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_operation_draw_page_finish (GtkPrintOperation *op);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_operation_set_defer_drawing (GtkPrintOperation *op);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_operation_set_support_selection (GtkPrintOperation *op,
+ gboolean support_selection);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_print_operation_get_support_selection (GtkPrintOperation *op);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_operation_set_has_selection (GtkPrintOperation *op,
+ gboolean has_selection);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_print_operation_get_has_selection (GtkPrintOperation *op);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_operation_set_embed_page_setup (GtkPrintOperation *op,
+ gboolean embed);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_print_operation_get_embed_page_setup (GtkPrintOperation *op);
+GDK_AVAILABLE_IN_ALL
+int gtk_print_operation_get_n_pages_to_print (GtkPrintOperation *op);
+
+GDK_AVAILABLE_IN_ALL
+GtkPageSetup *gtk_print_run_page_setup_dialog (GtkWindow *parent,
+ GtkPageSetup *page_setup,
+ GtkPrintSettings *settings);
+
+/**
+ * GtkPageSetupDoneFunc:
+ * @page_setup: the `GtkPageSetup` that has been passed to
+ * gtk_print_run_page_setup_dialog_async()
+ * @data: (closure): user data that has been passed to
+ * gtk_print_run_page_setup_dialog_async()
+ *
+ * The type of function that is passed to
+ * gtk_print_run_page_setup_dialog_async().
+ *
+ * This function will be called when the page setup dialog
+ * is dismissed, and also serves as destroy notify for @data.
+ */
+typedef void (* GtkPageSetupDoneFunc) (GtkPageSetup *page_setup,
+ gpointer data);
+
+GDK_AVAILABLE_IN_ALL
+void gtk_print_run_page_setup_dialog_async (GtkWindow *parent,
+ GtkPageSetup *page_setup,
+ GtkPrintSettings *settings,
+ GtkPageSetupDoneFunc done_cb,
+ gpointer data);
+
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkPrintOperation, g_object_unref)
+
+G_END_DECLS
+
--- /dev/null
+/* GTK - The GIMP Toolkit
+ * gtkprintoperationpreview.h: Abstract print preview interface
+ * Copyright (C) 2006, Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
+#include <cairo.h>
+#include <gtk/print/gtkprintcontext.h>
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_PRINT_OPERATION_PREVIEW (gtk_print_operation_preview_get_type ())
+#define GTK_PRINT_OPERATION_PREVIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PRINT_OPERATION_PREVIEW, GtkPrintOperationPreview))
+#define GTK_IS_PRINT_OPERATION_PREVIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_PRINT_OPERATION_PREVIEW))
+#define GTK_PRINT_OPERATION_PREVIEW_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GTK_TYPE_PRINT_OPERATION_PREVIEW, GtkPrintOperationPreviewIface))
+
+typedef struct _GtkPrintOperationPreview GtkPrintOperationPreview; /*dummy typedef */
+typedef struct _GtkPrintOperationPreviewIface GtkPrintOperationPreviewIface;
+
+
+struct _GtkPrintOperationPreviewIface
+{
+ GTypeInterface g_iface;
+
+ /* signals */
+ void (*ready) (GtkPrintOperationPreview *preview,
+ GtkPrintContext *context);
+ void (*got_page_size) (GtkPrintOperationPreview *preview,
+ GtkPrintContext *context,
+ GtkPageSetup *page_setup);
+
+ /* methods */
+ void (*render_page) (GtkPrintOperationPreview *preview,
+ int page_nr);
+ gboolean (*is_selected) (GtkPrintOperationPreview *preview,
+ int page_nr);
+ void (*end_preview) (GtkPrintOperationPreview *preview);
+
+ /* Padding for future expansion */
+ void (*_gtk_reserved1) (void);
+ void (*_gtk_reserved2) (void);
+ void (*_gtk_reserved3) (void);
+ void (*_gtk_reserved4) (void);
+ void (*_gtk_reserved5) (void);
+ void (*_gtk_reserved6) (void);
+ void (*_gtk_reserved7) (void);
+ void (*_gtk_reserved8) (void);
+};
+
+GDK_AVAILABLE_IN_ALL
+GType gtk_print_operation_preview_get_type (void) G_GNUC_CONST;
+
+GDK_AVAILABLE_IN_ALL
+void gtk_print_operation_preview_render_page (GtkPrintOperationPreview *preview,
+ int page_nr);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_operation_preview_end_preview (GtkPrintOperationPreview *preview);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_print_operation_preview_is_selected (GtkPrintOperationPreview *preview,
+ int page_nr);
+
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkPrintOperationPreview, g_object_unref)
+
+G_END_DECLS
+
--- /dev/null
+/* GTK - The GIMP Toolkit
+ * gtkprintsettings.h: Print Settings
+ * Copyright (C) 2006, Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
+#include <gtk/print/gtkpapersize.h>
+
+G_BEGIN_DECLS
+
+typedef struct _GtkPrintSettings GtkPrintSettings;
+
+#define GTK_TYPE_PRINT_SETTINGS (gtk_print_settings_get_type ())
+#define GTK_PRINT_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PRINT_SETTINGS, GtkPrintSettings))
+#define GTK_IS_PRINT_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_PRINT_SETTINGS))
+
+typedef void (*GtkPrintSettingsFunc) (const char *key,
+ const char *value,
+ gpointer user_data);
+
+typedef struct _GtkPageRange GtkPageRange;
+
+/**
+ * GtkPageRange:
+ * @start: start of page range.
+ * @end: end of page range.
+ *
+ * A range of pages to print.
+ *
+ * See also [method@Gtk.PrintSettings.set_page_ranges].
+ */
+struct _GtkPageRange
+{
+ int start;
+ int end;
+};
+
+GDK_AVAILABLE_IN_ALL
+GType gtk_print_settings_get_type (void) G_GNUC_CONST;
+GDK_AVAILABLE_IN_ALL
+GtkPrintSettings *gtk_print_settings_new (void);
+
+GDK_AVAILABLE_IN_ALL
+GtkPrintSettings *gtk_print_settings_copy (GtkPrintSettings *other);
+
+GDK_AVAILABLE_IN_ALL
+GtkPrintSettings *gtk_print_settings_new_from_file (const char *file_name,
+ GError **error);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_print_settings_load_file (GtkPrintSettings *settings,
+ const char *file_name,
+ GError **error);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_print_settings_to_file (GtkPrintSettings *settings,
+ const char *file_name,
+ GError **error);
+GDK_AVAILABLE_IN_ALL
+GtkPrintSettings *gtk_print_settings_new_from_key_file (GKeyFile *key_file,
+ const char *group_name,
+ GError **error);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_print_settings_load_key_file (GtkPrintSettings *settings,
+ GKeyFile *key_file,
+ const char *group_name,
+ GError **error);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_to_key_file (GtkPrintSettings *settings,
+ GKeyFile *key_file,
+ const char *group_name);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_print_settings_has_key (GtkPrintSettings *settings,
+ const char *key);
+GDK_AVAILABLE_IN_ALL
+const char * gtk_print_settings_get (GtkPrintSettings *settings,
+ const char *key);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set (GtkPrintSettings *settings,
+ const char *key,
+ const char *value);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_unset (GtkPrintSettings *settings,
+ const char *key);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_foreach (GtkPrintSettings *settings,
+ GtkPrintSettingsFunc func,
+ gpointer user_data);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_print_settings_get_bool (GtkPrintSettings *settings,
+ const char *key);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set_bool (GtkPrintSettings *settings,
+ const char *key,
+ gboolean value);
+GDK_AVAILABLE_IN_ALL
+double gtk_print_settings_get_double (GtkPrintSettings *settings,
+ const char *key);
+GDK_AVAILABLE_IN_ALL
+double gtk_print_settings_get_double_with_default (GtkPrintSettings *settings,
+ const char *key,
+ double def);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set_double (GtkPrintSettings *settings,
+ const char *key,
+ double value);
+GDK_AVAILABLE_IN_ALL
+double gtk_print_settings_get_length (GtkPrintSettings *settings,
+ const char *key,
+ GtkUnit unit);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set_length (GtkPrintSettings *settings,
+ const char *key,
+ double value,
+ GtkUnit unit);
+GDK_AVAILABLE_IN_ALL
+int gtk_print_settings_get_int (GtkPrintSettings *settings,
+ const char *key);
+GDK_AVAILABLE_IN_ALL
+int gtk_print_settings_get_int_with_default (GtkPrintSettings *settings,
+ const char *key,
+ int def);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set_int (GtkPrintSettings *settings,
+ const char *key,
+ int value);
+
+#define GTK_PRINT_SETTINGS_PRINTER "printer"
+#define GTK_PRINT_SETTINGS_ORIENTATION "orientation"
+#define GTK_PRINT_SETTINGS_PAPER_FORMAT "paper-format"
+#define GTK_PRINT_SETTINGS_PAPER_WIDTH "paper-width"
+#define GTK_PRINT_SETTINGS_PAPER_HEIGHT "paper-height"
+#define GTK_PRINT_SETTINGS_N_COPIES "n-copies"
+#define GTK_PRINT_SETTINGS_DEFAULT_SOURCE "default-source"
+#define GTK_PRINT_SETTINGS_QUALITY "quality"
+#define GTK_PRINT_SETTINGS_RESOLUTION "resolution"
+#define GTK_PRINT_SETTINGS_USE_COLOR "use-color"
+#define GTK_PRINT_SETTINGS_DUPLEX "duplex"
+#define GTK_PRINT_SETTINGS_COLLATE "collate"
+#define GTK_PRINT_SETTINGS_REVERSE "reverse"
+#define GTK_PRINT_SETTINGS_MEDIA_TYPE "media-type"
+#define GTK_PRINT_SETTINGS_DITHER "dither"
+#define GTK_PRINT_SETTINGS_SCALE "scale"
+#define GTK_PRINT_SETTINGS_PRINT_PAGES "print-pages"
+#define GTK_PRINT_SETTINGS_PAGE_RANGES "page-ranges"
+#define GTK_PRINT_SETTINGS_PAGE_SET "page-set"
+#define GTK_PRINT_SETTINGS_FINISHINGS "finishings"
+#define GTK_PRINT_SETTINGS_NUMBER_UP "number-up"
+#define GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT "number-up-layout"
+#define GTK_PRINT_SETTINGS_OUTPUT_BIN "output-bin"
+#define GTK_PRINT_SETTINGS_RESOLUTION_X "resolution-x"
+#define GTK_PRINT_SETTINGS_RESOLUTION_Y "resolution-y"
+#define GTK_PRINT_SETTINGS_PRINTER_LPI "printer-lpi"
+
+/**
+ * GTK_PRINT_SETTINGS_OUTPUT_DIR:
+ *
+ * The key used by the “Print to file” printer to store the
+ * directory to which the output should be written.
+ */
+#define GTK_PRINT_SETTINGS_OUTPUT_DIR "output-dir"
+
+/**
+ * GTK_PRINT_SETTINGS_OUTPUT_BASENAME:
+ *
+ * The key used by the “Print to file” printer to store the file
+ * name of the output without the path to the directory and the
+ * file extension.
+ */
+#define GTK_PRINT_SETTINGS_OUTPUT_BASENAME "output-basename"
+
+/**
+ * GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT:
+ *
+ * The key used by the “Print to file” printer to store the format
+ * of the output. The supported values are “PS” and “PDF”.
+ */
+#define GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT "output-file-format"
+
+/**
+ * GTK_PRINT_SETTINGS_OUTPUT_URI:
+ *
+ * The key used by the “Print to file” printer to store the URI
+ * to which the output should be written. GTK itself supports
+ * only “file://” URIs.
+ */
+#define GTK_PRINT_SETTINGS_OUTPUT_URI "output-uri"
+
+#define GTK_PRINT_SETTINGS_WIN32_DRIVER_VERSION "win32-driver-version"
+#define GTK_PRINT_SETTINGS_WIN32_DRIVER_EXTRA "win32-driver-extra"
+
+/* Helpers: */
+
+GDK_AVAILABLE_IN_ALL
+const char * gtk_print_settings_get_printer (GtkPrintSettings *settings);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set_printer (GtkPrintSettings *settings,
+ const char *printer);
+GDK_AVAILABLE_IN_ALL
+GtkPageOrientation gtk_print_settings_get_orientation (GtkPrintSettings *settings);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set_orientation (GtkPrintSettings *settings,
+ GtkPageOrientation orientation);
+GDK_AVAILABLE_IN_ALL
+GtkPaperSize * gtk_print_settings_get_paper_size (GtkPrintSettings *settings);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set_paper_size (GtkPrintSettings *settings,
+ GtkPaperSize *paper_size);
+GDK_AVAILABLE_IN_ALL
+double gtk_print_settings_get_paper_width (GtkPrintSettings *settings,
+ GtkUnit unit);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set_paper_width (GtkPrintSettings *settings,
+ double width,
+ GtkUnit unit);
+GDK_AVAILABLE_IN_ALL
+double gtk_print_settings_get_paper_height (GtkPrintSettings *settings,
+ GtkUnit unit);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set_paper_height (GtkPrintSettings *settings,
+ double height,
+ GtkUnit unit);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_print_settings_get_use_color (GtkPrintSettings *settings);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set_use_color (GtkPrintSettings *settings,
+ gboolean use_color);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_print_settings_get_collate (GtkPrintSettings *settings);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set_collate (GtkPrintSettings *settings,
+ gboolean collate);
+GDK_AVAILABLE_IN_ALL
+gboolean gtk_print_settings_get_reverse (GtkPrintSettings *settings);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set_reverse (GtkPrintSettings *settings,
+ gboolean reverse);
+GDK_AVAILABLE_IN_ALL
+GtkPrintDuplex gtk_print_settings_get_duplex (GtkPrintSettings *settings);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set_duplex (GtkPrintSettings *settings,
+ GtkPrintDuplex duplex);
+GDK_AVAILABLE_IN_ALL
+GtkPrintQuality gtk_print_settings_get_quality (GtkPrintSettings *settings);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set_quality (GtkPrintSettings *settings,
+ GtkPrintQuality quality);
+GDK_AVAILABLE_IN_ALL
+int gtk_print_settings_get_n_copies (GtkPrintSettings *settings);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set_n_copies (GtkPrintSettings *settings,
+ int num_copies);
+GDK_AVAILABLE_IN_ALL
+int gtk_print_settings_get_number_up (GtkPrintSettings *settings);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set_number_up (GtkPrintSettings *settings,
+ int number_up);
+GDK_AVAILABLE_IN_ALL
+GtkNumberUpLayout gtk_print_settings_get_number_up_layout (GtkPrintSettings *settings);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set_number_up_layout (GtkPrintSettings *settings,
+ GtkNumberUpLayout number_up_layout);
+GDK_AVAILABLE_IN_ALL
+int gtk_print_settings_get_resolution (GtkPrintSettings *settings);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set_resolution (GtkPrintSettings *settings,
+ int resolution);
+GDK_AVAILABLE_IN_ALL
+int gtk_print_settings_get_resolution_x (GtkPrintSettings *settings);
+GDK_AVAILABLE_IN_ALL
+int gtk_print_settings_get_resolution_y (GtkPrintSettings *settings);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set_resolution_xy (GtkPrintSettings *settings,
+ int resolution_x,
+ int resolution_y);
+GDK_AVAILABLE_IN_ALL
+double gtk_print_settings_get_printer_lpi (GtkPrintSettings *settings);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set_printer_lpi (GtkPrintSettings *settings,
+ double lpi);
+GDK_AVAILABLE_IN_ALL
+double gtk_print_settings_get_scale (GtkPrintSettings *settings);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set_scale (GtkPrintSettings *settings,
+ double scale);
+GDK_AVAILABLE_IN_ALL
+GtkPrintPages gtk_print_settings_get_print_pages (GtkPrintSettings *settings);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set_print_pages (GtkPrintSettings *settings,
+ GtkPrintPages pages);
+GDK_AVAILABLE_IN_ALL
+GtkPageRange * gtk_print_settings_get_page_ranges (GtkPrintSettings *settings,
+ int *num_ranges);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set_page_ranges (GtkPrintSettings *settings,
+ GtkPageRange *page_ranges,
+ int num_ranges);
+GDK_AVAILABLE_IN_ALL
+GtkPageSet gtk_print_settings_get_page_set (GtkPrintSettings *settings);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set_page_set (GtkPrintSettings *settings,
+ GtkPageSet page_set);
+GDK_AVAILABLE_IN_ALL
+const char * gtk_print_settings_get_default_source (GtkPrintSettings *settings);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set_default_source (GtkPrintSettings *settings,
+ const char *default_source);
+GDK_AVAILABLE_IN_ALL
+const char * gtk_print_settings_get_media_type (GtkPrintSettings *settings);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set_media_type (GtkPrintSettings *settings,
+ const char *media_type);
+GDK_AVAILABLE_IN_ALL
+const char * gtk_print_settings_get_dither (GtkPrintSettings *settings);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set_dither (GtkPrintSettings *settings,
+ const char *dither);
+GDK_AVAILABLE_IN_ALL
+const char * gtk_print_settings_get_finishings (GtkPrintSettings *settings);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set_finishings (GtkPrintSettings *settings,
+ const char *finishings);
+GDK_AVAILABLE_IN_ALL
+const char * gtk_print_settings_get_output_bin (GtkPrintSettings *settings);
+GDK_AVAILABLE_IN_ALL
+void gtk_print_settings_set_output_bin (GtkPrintSettings *settings,
+ const char *output_bin);
+
+GDK_AVAILABLE_IN_ALL
+GVariant *gtk_print_settings_to_gvariant (GtkPrintSettings *settings);
+GDK_AVAILABLE_IN_ALL
+GtkPrintSettings *gtk_print_settings_new_from_gvariant (GVariant *variant);
+
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkPrintSettings, g_object_unref)
+
+G_END_DECLS
+
--- /dev/null
+gtk_print_headers = files([
+ 'gtkpagesetup.h',
+ 'gtkpapersize.h',
+ 'gtkprintcontext.h',
+ 'gtkprintoperation.h',
+ 'gtkprintoperationpreview.h',
+ 'gtkprintsettings.h',
+])